type Valueof<T> = T[keyof T];

/** 从第一个对象泛型中筛选出值符合第二个泛型的类型，生成一个新对象类型 */
type FilterType<T, S> = Pick<T, { [k in keyof T]: T[k] extends S ? k : never }[keyof T]>;
